﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class БухгалтерскийУчет
	{
		// Функция преобразует счет БУ в счет НУ в зависимости от вида расхода
		//
		// Параметры
		//  СтруктураДанных - Структура - структура с данными преобразования
		//                                Имена полей структуры - имена реквизитов
		//                                регистра.
		//  ССубконто       - Булево    - признак возврата субконто НУ
		//	МассивСчетовНУ - Массив - Массив счетов налогового учета
		//
		// Возвращаемое значение
		//  Счет налогового учета
		//

		public object ПреобразоватьСчетаБУвСчетНУ(/*
	СтруктураДанных, 
	ВозвращатьСубконто = Ложь, 
	Знач ДатаСреза = Неопределено,
	МассивСчетовНУ = Неопределено
	*/)
		{
			if(true/*ДатаСреза = Неопределено*/)
			{
				//ДатаСреза = ТекущаяДата();
			}
			//Результат = ПланыСчетов.Налоговый.ПустаяСсылка();
			if(true/*НЕ ЗначениеЗаполнено(СтруктураДанных)*/)
			{
			}
			//Запрос = Новый Запрос();
			//ТекстУсловия = "Учитывается";
			if(true/*МассивСчетовНУ <> Неопределено*/)
			{
				//ТекстУсловия = ТекстУсловия + Символы.ПС + "И СчетНУ В (&МассивСчетовНУ)";
				//Запрос.УстановитьПараметр("МассивСчетовНУ", МассивСчетовНУ);
			}
			/*Запрос.Текст = "ВЫБРАТЬ
	               |	СоответствиеСчетовБУиНУ.СчетБУ КАК СчетБУ,
	               |	СоответствиеСчетовБУиНУ.СчетКоррБУ КАК СчетКоррБУ,
	               |	СоответствиеСчетовБУиНУ.ВидЗатратНУ КАК ВидЗатратНУ,
	               |	СоответствиеСчетовБУиНУ.СчетНУ КАК СчетНУ,
	               |	СоответствиеСчетовБУиНУ.Учитывается
	               |ИЗ
	               |	РегистрСведений.СоответствиеСчетовБУиНУ.СрезПоследних(&ДатаСреза, " + ТекстУсловия + ") КАК СоответствиеСчетовБУиНУ
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	СчетБУ,
	               |	СчетКоррБУ,
	               |	ВидЗатратНУ,
	               |	СчетНУ";*/
			//Запрос.УстановитьПараметр("ДатаСреза", ДатаСреза);
			//Выборка = Запрос.Выполнить().Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
			}
			return null;
		}
		// ПреобразоватьСчетаБУвСчетНУ()
		// Производит замену субконто НУ на субконто БУ, если у них одинаковые типы-
		//

		public void ЗаменитьСубконтоНУ(/*СчетБУ, СчетНУ, НомерСубконто, СубконтоБУ, СубконтоНУ*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(СчетБУ)*/)
			{
			}
			if(true/*НЕ ЗначениеЗаполнено(СчетНУ)*/)
			{
			}
			if(true/*СчетНУ.ВидыСубконто.Количество() >= НомерСубконто*/)
			{
				if(true/*СчетБУ.ВидыСубконто[НомерСубконто - 1].ВидСубконто.ТипЗначения = 
			СчетНУ.ВидыСубконто[НомерСубконто - 1].ВидСубконто.ТипЗначения*/)
				{
					//СубконтоНУ = СубконтоБУ;
				}
			}
		}
		// ЗаменитьСубконтоНУ()
		// Формирует структуру с вложенной таблицой на основании таблицы(дерева) значений

		public object ПреобразоватьТаблицуЗначенийВСтруктуру(/*ТаблицаЗначений,СтруктураОбщихРеквизитов,ФормироватьВложеннуюТаблицу,СтруктураКолонок = Неопределено,КоллекцияКолонокДереваЗначений=Неопределено*/)
		{
			/*Экспорт
	НоваяСтруктура = новый структура();*/
			if(true/*ФормироватьВложеннуюТаблицу*/)
			{
				if(true/*НЕ ЗначениеЗаполнено(СтруктураКолонок)*/)
				{
					//СтруктураКолонок = новый Структура();
				}
				if(true/*СтруктураКолонок.Количество()=0*/)
				{
					//НоваяТаблица =новый ТаблицаЗначений();
				}
				//НоваяСтруктура.Вставить("Таблица",НоваяТаблица);
			}
			return null;
		}
		// Функция возвращает остаток по счету бухгалтерского учета
		// Возвращаемое значение - таблица значений в развороте по аналитике с учетом фильтра

		public object ПолучитьОстатокПоСчету(/*Организация,Период,Счет,Валюта=Неопределено ,Субконто1=Неопределено, Субконто2=Неопределено,Субконто3=Неопределено,ЗнакФильтрПоОстаткам=0*/)
		{
			//ВидПланаСчетов = Счет.Метаданные().Имя;
			//Субконто    = Новый Массив(3);
			//Субконто[0] = Субконто1;
			//Субконто[1] = Субконто2;
			//Субконто[2] = Субконто3;
			//ФильтрПоСубконто = "";
			//ВыбиратьВалюту			= (не Счет.Метаданные().ПризнакиУчета.Найти("Валютный")= Неопределено);
			//ВыбиратьВалютнуюСумму	= (не Метаданные.РегистрыБухгалтерии[ВидПланаСчетов].Ресурсы.Найти("ВалютнаяСумма")= Неопределено);
			//ОтборПоОрганизации		= (не Метаданные.РегистрыБухгалтерии[ВидПланаСчетов].Измерения.Найти("Организация")= Неопределено);
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Период"      , Период);
			//Запрос.УстановитьПараметр("Счет"        , Счет);
			//Запрос.УстановитьПараметр("Организация" , Организация);
			//Запрос.УстановитьПараметр("Субконто1"   , Субконто[0]);
			//Запрос.УстановитьПараметр("Субконто2"   , Субконто[1]);
			//Запрос.УстановитьПараметр("Субконто3"   , Субконто[2]);
			//Запрос.УстановитьПараметр("Валюта"      , Валюта);
			//ВидыСубконто = Счет.ВидыСубконто.ВыгрузитьКолонку("ВидСубконто");
			//Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
			//ЗнакОстатков = ?(ТипЗнч(ЗнакФильтрПоОстаткам) = Тип("Число"), ЗнакФильтрПоОстаткам, 0);
			//Запрос.УстановитьПараметр("Множитель", ?(ЗнакОстатков < 0, -1, 1));
			//КоличествоСубконто = ВидыСубконто.Количество();
			/*Запрос.Текст = "
	|ВЫБРАТЬ
	|	Счет,"
	+ ?(КоличествоСубконто > 0, " 
	|	Субконто1,", "НЕОПРЕДЕЛЕНО КАК Субконто1,")
	+ ?(КоличествоСубконто > 1, " 
	|	Субконто2,", "НЕОПРЕДЕЛЕНО КАК Субконто2,")
	+ ?(КоличествоСубконто > 2, " 
	|	Субконто3,", "НЕОПРЕДЕЛЕНО КАК Субконто3,")
	+ "
	|	ЕСТЬNULL(СуммаОстаток, 0) * &Множитель КАК СуммаОстаток"
	+ ?(ВыбиратьВалюту, ", 
	|	ЕСТЬNULL(Валюта, НЕОПРЕДЕЛЕНО) КАК Валюта", "")
	+ ?(ВыбиратьВалютнуюСумму, ", 
	|	ЕСТЬNULL(ВалютнаяСуммаОстаток, 0)  * &Множитель КАК ВалютнаяСуммаОстаток", ",
	|	ЕСТЬNULL(СуммаОстаток, 0)  * &Множитель КАК ВалютнаяСуммаОстаток")
	+ "
	|ИЗ
	|	РегистрБухгалтерии." + ВидПланаСчетов + ".Остатки(&Период, Счет = &Счет, &ВидыСубконто, #Фильтр#) КАК Остатки"
	+ ?(ЗнакОстатков <> 0, "
	|
	|ГДЕ
	|	"
	+ ?(НЕ ЗначениеЗаполнено(Валюта), 
	"ЕСТЬNULL(Остатки.СуммаОстаток, 0) * &Множитель > 0", "ЕСТЬNULL(Остатки.ВалютнаяСуммаОстаток, 0) * &Множитель > 0"), "")
	+ "
	|
	|ДЛЯ ИЗМЕНЕНИЯ
	|
	|УПОРЯДОЧИТЬ ПО
	|	Счет,
	|	Субконто1,
	|	Субконто2,
	|	Субконто3"
	+ ?(ВыбиратьВалюту,",
	|	Валюта","");*/
			//Фильтр = "";
			if(true/*ОтборПоОрганизации*/)
			{
				//Фильтр = Фильтр + " И Организация = &Организация";
			}
			if(true/*ЗначениеЗаполнено(Валюта) И Счет.Валютный*/)
			{
				//Фильтр = Фильтр + " И Валюта = &Валюта";
			}
			//Фильтр = Фильтр + ФильтрПоСубконто;
			if(true/*Не ПустаяСтрока(Фильтр)*/)
			{
				/*// Убираем первое "И"
*/
				//Фильтр = Сред(Фильтр, 3);
			}
			if(true/*глЗначениеПеременной("ИспользоватьБлокировкуДанных")*/)
			{
				/*СтруктураПараметровБлокировки = Новый Структура(
			"ТипТаблицы, ИмяТаблицы", "РегистрБухгалтерии", "Хозрасчетный");*/
				//СтруктураЗначенийБлокировки   = Новый Структура;
				if(true/*ТипЗнч(Период) = Тип("МоментВремени")*/)
				{
					//СтруктураЗначенийБлокировки.Вставить("Период", Период.Дата);
				}
				//СтруктураЗначенийБлокировки.Вставить("Счет", Счет);
				if(true/*ОтборПоОрганизации*/)
				{
					//СтруктураЗначенийБлокировки.Вставить("Организация", Организация);
				}
				if(true/*ЗначениеЗаполнено(Валюта) И Счет.Валютный*/)
				{
					//СтруктураЗначенийБлокировки.Вставить("Валюта", Валюта);
				}
				//Отказ     = Ложь;
				//Заголовок = "";
				//ОбщегоНазначения.УстановитьУправляемуюБлокировку(СтруктураПараметровБлокировки, СтруктураЗначенийБлокировки, , Отказ, Заголовок);
			}
			//Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Фильтр#", Фильтр);
			//Остатки = Запрос.Выполнить().Выгрузить();
			return null;
		}
		// ПолучитьОстатокПоСчету()
		// Процедура удаляет из набора записи в зависимости от вида регламентной операции
		//

		public void ЗачиститьНаборЗаписейОтРегламентныхОпераций(/*НаборЗаписей, МассивРегОпераций, ИмяРеквизита = "ВидРегламентнойОперации"*/)
		{
			if(true/*НаборЗаписей = Неопределено*/)
			{
			}
			//ВсегоЗаписей = (НаборЗаписей.Количество());
		}
		// ЗачиститьНаборЗаписейОтРегламентныхОпераций()
		// Записывает наборы записей регистров Хозрасчетный и Налоговый коллекции Движения, если они модифицированы.
		// Движения записываются без режима замещения.
		// Необходимо вызывать, если движения по этим регистрам могут формироваться
		// - с использованием коллекции Движения ("из модуля документа")
		// - с использованием наборов записей (из подписок на событие ПриПроведении, из процедур серверных модулей)
		// Вызывать нужно перед тем, как вызываются процедуры серверных модулей или обработчик подписки на событие

		public void ЗаписатьДвижения(/*Движения*/)
		{
			//Регистры = Новый Массив();
			//Регистры.Добавить("Хозрасчетный");
			//Регистры.Добавить("Налоговый");
		}
		// Функция определяет принадлежность субсчета счету.
		//

		public object ЭтоСубсчет(/* Субсчет, Счет*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(Субсчет)*/)
			{
			}
			//Возврат ( Субсчет.ПринадлежитЭлементу(Счет) ИЛИ Субсчет = Счет);
			return null;
		}
		// ЭтоСубсчет()
		// Функция формирует конец периода формирования отчета.
		//

		public object КонецПериодаОтчета(/*КонДата*/)
		{
			//Возврат ?(КонДата = Дата('00010101000000'), КонДата, КонецДня(КонДата));
			return null;
		}
		// КонецПериодаОтчета()
		// Если в переданном поле ввода предполагается вводить элемент спр-ка
		//  ПодразделенияОрганизаций или БанковскиеСчета, то в качестве владельца
		//  будущего значения указывается Организация документа
		//
		// Параметры
		//  Элемент - поле ввода значения субконто
		//
		// Возвращаемое значение:
		//   нет
		//

		public void УказатьВладельцаПолюВвода(/*Элемент, Владелец*/)
		{
			//ОписаниеТипа = Элемент.ОграничениеТипа;
			if(true/*ОписаниеТипа.СодержитТип(Тип("СправочникСсылка.ПодразделенияОрганизаций")) или
		ОписаниеТипа.СодержитТип(Тип("СправочникСсылка.БанковскиеСчета"))*/)
			{
				//Элемент.ВыборПоВладельцу = Владелец;
			}
		}
		// Процедура устанавливает субконто на счете. Если такое субконто не счете
		// отсутствует, то ничего не делается.
		//
		// Параметры:
		//		Счет - Счет, к которому относится субконто
		//      Субконто - вид субконто
		//		Номер или имя установливаемого субконто
		//      Значение субконто - значение устанавливаемого субконто
		//

		public void УстановитьСубконто(/*Счет, Субконто, ИмяСубконто, ЗначениеСубконто, Сообщать = Ложь, Заголовок = "", ВидыСубконтоСчета = Неопределено*/)
		{
			if(true/*Счет = Неопределено ИЛИ Счет.Пустая()*/)
			{
			}
			if(true/*ВидыСубконтоСчета = Неопределено*/)
			{
				//ВидыСубконтоСчета = Счет.ВидыСубконто;
			}
			if(true/*ТипЗнч(ИмяСубконто) = Тип("Число")*/)
			{
				if(true/*ИмяСубконто > ВидыСубконтоСчета.Количество()*/)
				{
				}
				//ВидСубк = ВидыСубконтоСчета[ИмяСубконто - 1].ВидСубконто;
			}
			if(true/*ВидСубк.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто))*/)
			{
				//Субконто.Вставить(ВидСубк, ЗначениеСубконто);
			}
		}
		// УстановитьСубконто()

		public object ОпределитьВидСубконтоПоСчету(/*Счет, КэшВидовСубконтоПоСчетам*/)
		{
			if(true/*Счет = Неопределено*/)
			{
			}
			if(true/*КэшВидовСубконтоПоСчетам = Неопределено*/)
			{
				//КэшВидовСубконтоПоСчетам = Новый Соответствие;
			}
			//ВидыСубконтоПоСчету = КэшВидовСубконтоПоСчетам[Счет];
			if(true/*ВидыСубконтоПоСчету = Неопределено*/)
			{
				//ВидыСубконтоПоСчету = Счет.ВидыСубконто;
				//КэшВидовСубконтоПоСчетам.Вставить(Счет, ВидыСубконтоПоСчету);
			}
			return null;
		}
		// Фукция предназначена для определения названия объекта
		// учета по его счету учета. Название объекта выдается в родительном падеже

		public object ПолучитьНазваниеОбъекта(/*СчетУчета*/)
		{
			if(true/*Сред(СчетУчета.Код, 4, 1) = "."*/)
			{
				//СчетУчетаКод = Лев(СчетУчета.Код, 3);
			}
			if(true/*СчетУчетаКод = "10"*/)
			{
				if(true/*Лев(СчетУчета.Код, 5) = "10.09"*/)
				{
				}
			}
			return null;
		}

		public object СформироватьСодержаниеПроводкиПоВходящемуДокументу(/*Структура, ВидОперации*/)
		{
			return null;
		}

		public object СформироватьКолонкиДляСодержанияПроводкиПоВходящемуДокументу(/*ТаблицаТоваров, ВидДокВходящий, НомерВходящегоДокумента, ДатаВходящегоДокумента*/)
		{
			//ТаблицаТоваров.Колонки.Добавить("ВидДокВходящий");
			//ТаблицаТоваров.ЗаполнитьЗначения(ВидДокВходящий, "ВидДокВходящий");
			//ТаблицаТоваров.Колонки.Добавить("НомерВходящегоДокумента");
			//ТаблицаТоваров.ЗаполнитьЗначения(НомерВходящегоДокумента, "НомерВходящегоДокумента");
			//ТаблицаТоваров.Колонки.Добавить("ДатаВходящегоДокумента");
			//ТаблицаТоваров.ЗаполнитьЗначения(ДатаВходящегоДокумента, "ДатаВходящегоДокумента");
			if(true/*ТаблицаТоваров.Колонки.найти("Содержание") = Неопределено*/)
			{
				//ТаблицаТоваров.Колонки.Добавить("Содержание");
			}
			return null;
		}
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ПЕРЕОЦЕНКИ ВАЛЮТНЫХ СЧЕТОВ
		// ПРОЦЕДУРЫ СПИСАНИЯ РБП

		public object РазностьДатВДнях(/*Дата1, Дата2*/)
		{
			//мДлинаСуток = 86400;
			/*// в секундах
*/
			return null;
		}

		public object СуммаСписанияЗаМесяц(/*мНачДата, мКонДата, СтатьяРасходовБудущихПериодов, Знач ДатаНачалаСписания, Знач ДатаОкончанияСписания, Остаток, ВспомогательныеДанные = Неопределено*/)
		{
			if(true/*Остаток = 0*/)
			{
			}
			//ДатаНачалаСписания    = НачалоДня(ДатаНачалаСписания);
			//ДатаОкончанияСписания = КонецДня(ДатаОкончанияСписания);
			//ПоправкаНаВисокосныйГодВНачалеПериода = 0;
			//ПоправкаНаВисокосныйГодВКонцеПериода  = 0;
			if(true/*Лев(Строка(КонецМесяца(ДатаНачалаСписания)), 5) = "29.02" И НЕ Лев(Строка(ДатаНачалаСписания), 5) = "01.02"*/)
			{
				//ПоправкаНаВисокосныйГодВНачалеПериода = -1;
			}
			if(true/*Лев(Строка(КонецМесяца(ДатаОкончанияСписания)), 5) = "29.02"*/)
			{
				//ПоправкаНаВисокосныйГодВКонцеПериода = -1;
			}
			if(true/*НЕ ЗначениеЗаполнено(ДатаНачалаСписания)*/)
			{
			}
			if(true/*НЕ ЗначениеЗаполнено(ДатаОкончанияСписания)*/)
			{
			}
			if(true/*СтатьяРасходовБудущихПериодов.СпособПризнанияРасходов = Перечисления.СпособыПризнанияРасходов.ПоКалендарнымДням*/)
			{
				//КоличествоДней = РазностьДатВДнях(ДатаОкончанияСписания, ДатаНачалаСписания) + 1;
				//ЦенаДня = Остаток / КоличествоДней;
				if(true/*КонецМесяца(ДатаОкончанияСписания) = КонецМесяца(ДатаНачалаСписания)*/)
				{
					//КоличествоДнейТекущегоМесяца = День(ДатаОкончанияСписания);
					//КоличествоДней = КоличествоДнейТекущегоМесяца;
					//СуммаСписания  = Остаток;
				}
				if(true/*Не ВспомогательныеДанные = Неопределено*/)
				{
					//ВспомогательныеДанные.КоличествоМесяцевДней = КоличествоДней;
					//ВспомогательныеДанные.КоличествоМесяцевДнейТекущегоПериода = КоличествоДнейТекущегоМесяца;
				}
			}
			if(true/*Остаток > 0*/)
			{
			}
			return null;
		}
		// СуммаСписанияЗаМесяц()

		public void РасчетИСписаниеРБП(/*СтруктураШапкиДокумента, Отказ, ВидРБП, ВидУчета, мПроводки, ЗаписьРасчетаРБП*/)
		{
			//мНачДата    = СтруктураШапкиДокумента.мНачДата;
			//мКонДата    = СтруктураШапкиДокумента.мКонДата;
			//мНачГраница = СтруктураШапкиДокумента.мНачГраница;
			//мКонГраница = СтруктураШапкиДокумента.мКонГраница;
			//Ссылка = СтруктураШапкиДокумента.Ссылка;
			//ТабЗатрат = УправлениеЗатратами.СформироватьТаблицуЗатрат();
			//ХарактерЗатрат = Новый СписокЗначений;
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.ПроизводственныеРасходы);
			/*// 20/23
*/
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.ОбщепроизводственныеРасходы);
			/*// 25
*/
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.ОбщехозяйственныеРасходы);
			/*// 26
*/
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.БракВПроизводстве);
			/*// 28
*/
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.ИздержкиОбращения);
			/*// 44
*/
			//ХарактерЗатрат.Добавить( Перечисления.ХарактерЗатрат.КоммерческиеРасходы);
			/*// 44
*/
			//Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
			if(true/*ВидУчета = "БУ"*/)
			{
				//Запрос = Новый Запрос;
				//Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);
				//Запрос.УстановитьПараметр("КонецМесяца", СтруктураШапкиДокумента.мКонГраница);
				//Запрос.УстановитьПараметр("ВидРБП",      ВидРБП);
				//Массив = Новый Массив;
				//Массив.Добавить(ПланыСчетов.Хозрасчетный.ПлатежиПоДобровольномуСтрахованиюРаботников);
				//Массив.Добавить(ПланыСчетов.Хозрасчетный.ПлатежиПоПрочимВидамСтрахования);
				//Массив.Добавить(ПланыСчетов.Хозрасчетный.РасходыБудущихПериодов);
				//Запрос.УстановитьПараметр("Счет",        Массив);
				/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
		|	ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
		|	ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
		|	СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК Остаток,
		|	ХозрасчетныйОстатки.Счет КАК Счет
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.Остатки(
		|		&КонецМесяца,
		|		Счет В ИЕРАРХИИ (&Счет),
		|		,
		|		Организация = &Организация
		|			И (Субконто1.ВидРБП В (&ВидРБП)
		|				ИЛИ Субконто2.ВидРБП В (&ВидРБП)
		|				ИЛИ Субконто3.ВидРБП В (&ВидРБП))) КАК ХозрасчетныйОстатки
		|
		|СГРУППИРОВАТЬ ПО
		|	ХозрасчетныйОстатки.Субконто1,
		|	ХозрасчетныйОстатки.Субконто2,
		|	ХозрасчетныйОстатки.Субконто3,
		|	ХозрасчетныйОстатки.Счет";*/
				//Результат = Запрос.Выполнить();
				//Выборка = Результат.Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//Счет   = Выборка.Счет;
					//РБП         = УстановитьРБП(Выборка);
					if(true/*РБП = ""*/)
					{
					}
					if(true/*РБП.СпособПризнанияРасходов = Перечисления.СпособыПризнанияРасходов.ВОсобомПорядке*/)
					{
					}
					//СчетБУ = РБП.СчетБУ;
					if(true/*НЕ ЗначениеЗаполнено(РБП)*/)
					{
					}
					if(true/*НЕ ЗначениеЗаполнено(РБП.ДатаНачалаСписания)*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен дата начала списания !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					if(true/*НЕ ЗначениеЗаполнено(РБП.ДатаОкончанияСписания)*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен дата окончания списания !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					if(true/*НЕ ЗначениеЗаполнено(СчетБУ)*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен реквизит ""Счет БУ"" !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					//ВспомогательныеДанныеРасчета = Новый Структура("КоличествоМесяцевДней, КоличествоМесяцевДнейТекущегоПериода", 0, 0);
					//ДатаНачала = ?(РБП.ДатаНачалаСписания > мНачДата, РБП.ДатаНачалаСписания, мНачДата);
					//СуммаСписания = СуммаСписанияЗаМесяц(СтруктураШапкиДокумента.мНачДата, СтруктураШапкиДокумента.мКонДата, РБП, ДатаНачала, РБП.ДатаОкончанияСписания, Выборка.Остаток, ВспомогательныеДанныеРасчета);
					if(true/*СуммаСписания = 0*/)
					{
					}
					//ПроизводственныеРасходы = УправлениеЗатратами.ПроверитьСчетЗатратНаПроизводственныеРасходы(СчетБУ);
					//ПроводкаБУ = мПроводки.Добавить();
					//ПроводкаБУ.Период       = СтруктураШапкиДокумента.Дата;
					//ПроводкаБУ.Организация  = СтруктураШапкиДокумента.Организация;
					//ПроводкаБУ.СчетДт       = СчетБУ;
					if(true/*ПроизводственныеРасходы*/)
					{
						//УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "Подразделения",        РБП.ПодразделениеОрганизации);
						//УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "НоменклатурныеГруппы", РБП.НоменклатурнаяГруппа);
						//УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "СтатьиЗатрат",         РБП.СтатьяЗатрат);
						//УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "ОбъектыСтроительства", РБП.ОбъектСтроительства);
						//УстановитьСубконто(ПроводкаБУ.СчетДт, ПроводкаБУ.СубконтоДт, "СпособыСтроительства", РБП.СпособСтроительства);
					}
					//ПроводкаБУ.СчетКт       = Счет;
					//УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, 1, Выборка.Субконто1);
					//УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, 2, Выборка.Субконто2);
					//УстановитьСубконто(ПроводкаБУ.СчетКт, ПроводкаБУ.СубконтоКт, 3, Выборка.Субконто3);
					//ПроводкаБУ.Сумма        = СуммаСписания;
					//ПроводкаБУ.Содержание   = "Списание РБП";
					//ПроводкаБУ.НомерЖурнала = "";
					/*// Сформируем строку таблицы для отражения затрат по бух. учету.
*/
					//НоваяСтрока = ТабЗатрат.Добавить();
					//ЗаполнитьЗначенияСвойств(НоваяСтрока, РБП);
					//НоваяСтрока.СчетЗатрат   = СчетБУ;
					//НоваяСтрока.СчетЗатратНУ = РБП.СчетНУ;
					//НоваяСтрока.СуммаБух     = СуммаСписания;
					//СтрокаЗаписьРасчетаРБП = ЗаписьРасчетаРБП.Добавить();
					//СтрокаЗаписьРасчетаРБП.ДатаНачала = РБП.ДатаНачалаСписания;
					//СтрокаЗаписьРасчетаРБП.ДатаОкончания = РБП.ДатаОкончанияСписания;
					//СтрокаЗаписьРасчетаРБП.КоличествоМесяцевДней = ВспомогательныеДанныеРасчета.КоличествоМесяцевДней;
					//СтрокаЗаписьРасчетаРБП.КоличествоМесяцевДнейТекущегоПериода = ВспомогательныеДанныеРасчета.КоличествоМесяцевДнейТекущегоПериода;
					//СтрокаЗаписьРасчетаРБП.СпособПризнанияРасходов = РБП.СпособПризнанияРасходов;
					//СтрокаЗаписьРасчетаРБП.СчетУчета = Счет;
					//СтрокаЗаписьРасчетаРБП.СчетСписания = СчетБУ;
					//СтрокаЗаписьРасчетаРБП.Сумма = СуммаСписания;
					//СтрокаЗаписьРасчетаРБП.Статья = РБП;
					//СтрокаЗаписьРасчетаРБП.СуммаДоговора = РБП.Сумма;
					//СтрокаЗаписьРасчетаРБП.НачОстаток = Выборка.Остаток;
					//СтрокаЗаписьРасчетаРБП.КонОстаток = Выборка.Остаток - СуммаСписания;
				}
				/*;
		
		
		мПроводки.записать(Ложь);*/
			}
			if(true/*ВидУчета = "НУ"*/)
			{
				//Запрос = Новый Запрос;
				//Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);
				//Запрос.УстановитьПараметр("КонецМесяца", мКонГраница);
				//Запрос.УстановитьПараметр("ВидРБП",      ВидРБП);
				//Массив = Новый Массив;
				//Массив.Добавить(ПланыСчетов.Налоговый.РасходыБудущихПериодов);
				//Запрос.УстановитьПараметр("Счет",        Массив);
				//Запрос.УстановитьПараметр("СчетИсключение",ПланыСчетов.Налоговый.УбыткиПрошлыхЛет);
				/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	НалоговыйОстатки.Субконто1 КАК Субконто1,
		|	НалоговыйОстатки.Субконто2 КАК Субконто2,
		|	СУММА(НалоговыйОстатки.СуммаОстатокДт) КАК Остаток,
		|	НалоговыйОстатки.Счет КАК Счет,
		|	НалоговыйОстатки.ВидУчета КАК ВидУчета
		|ИЗ
		|	РегистрБухгалтерии.Налоговый.Остатки(
		|		&КонецМесяца,
		|		Счет В ИЕРАРХИИ (&Счет) И Не Счет В ИЕРАРХИИ (&СчетИсключение),
		|		,
		|		Организация = &Организация
		|		    И (Субконто1.ВидРБП В (&ВидРБП)
		|		        ИЛИ Субконто2.ВидРБП В (&ВидРБП)
		|		        ИЛИ Субконто3.ВидРБП В (&ВидРБП))) КАК НалоговыйОстатки
		|
		|СГРУППИРОВАТЬ ПО
		|	НалоговыйОстатки.Субконто1,
		|	НалоговыйОстатки.Субконто2,
		|	НалоговыйОстатки.Счет,
		|	НалоговыйОстатки.ВидУчета
		|
		|УПОРЯДОЧИТЬ ПО
		|	Счет,
		|	Субконто1,
		|	Субконто2,
		|	ВидУчета";*/
				//Результат = Запрос.Выполнить();
				//Выборка = Результат.Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					//РБП         = УстановитьРБП(Выборка);
					if(true/*РБП = ""*/)
					{
					}
					if(true/*РБП.СпособПризнанияРасходов = Перечисления.СпособыПризнанияРасходов.ВОсобомПорядке*/)
					{
					}
					//Счет        = Выборка.Счет;
					//СчетНУ      = РБП.СчетНУ;
					//ВидУчета    = Выборка.ВидУчета;
					if(true/*НЕ ЗначениеЗаполнено(РБП)*/)
					{
					}
					if(true/*НЕ ЗначениеЗаполнено(РБП.ДатаНачалаСписания)*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен дата начала списания !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					if(true/*НЕ ЗначениеЗаполнено(РБП.ДатаОкончанияСписания)*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен дата окончания списания !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					if(true/*НЕ ЗначениеЗаполнено(СчетНУ) И Не СтруктураШапкиДокумента.мПрименениеУСН*/)
					{
						//ТекстСообщения = "В справочнике ""Расходы будущих периодов"" для статьи """+ РБП + """ не заполнен реквизит ""Счет НУ "" !";
						//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок);
					}
					//ВспомогательныеДанныеРасчета = Новый Структура("КоличествоМесяцевДней, КоличествоМесяцевДнейТекущегоПериода", 0, 0);
					//ДатаНачала = ?(РБП.ДатаНачалаСписания > мНачДата, РБП.ДатаНачалаСписания, мНачДата);
					//СуммаСписания = СуммаСписанияЗаМесяц(СтруктураШапкиДокумента.мНачДата, СтруктураШапкиДокумента.мКонДата, РБП, ДатаНачала, РБП.ДатаОкончанияСписания, Выборка.Остаток, ВспомогательныеДанныеРасчета);
					if(true/*СуммаСписания = 0*/)
					{
					}
					//ПроизводственныеРасходыНУ = УправлениеЗатратами.ПроверитьСчетЗатратНаПроизводственныеРасходы(СчетНУ, "Налоговый");
					//ПроводкаНУ = мПроводки.Добавить();
					//ПроводкаНУ.Период       = СтруктураШапкиДокумента.Дата;
					//ПроводкаНУ.Организация  = СтруктураШапкиДокумента.Организация;
					//ПроводкаНУ.СчетДт       = СчетНУ;
					if(true/*ПроизводственныеРасходыНУ*/)
					{
						//УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "Подразделения",        РБП.ПодразделениеОрганизации);
						//УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "НоменклатурныеГруппы", РБП.НоменклатурнаяГруппа);
						//УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "СтатьиЗатрат",         РБП.СтатьяЗатрат);
						//УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "ОбъектыСтроительства", РБП.ОбъектСтроительства);
						//УстановитьСубконто(ПроводкаНУ.СчетДт, ПроводкаНУ.СубконтоДт, "СпособыСтроительства", РБП.СпособСтроительства);
					}
					//ПроводкаНУ.СчетКт       = Счет;
					//ПроводкаНУ.СубконтоКт.РасходыБудущихПериодов = РБП;
					//УстановитьСубконто(ПроводкаНУ.СчетКт, ПроводкаНУ.СубконтоКт, 2, Выборка.Субконто2);
					//ПроводкаНУ.ВидУчетаКт     = ВидУчета;
					//ПроводкаНУ.Сумма        = СуммаСписания;
					//ПроводкаНУ.Содержание   = "Списание РБП";
					//ПроводкаНУ.НомерЖурнала = "";
					if(true/*ЗначениеЗаполнено(РБП.СтатьяЗатрат)*/)
					{
						//ПроводкаНУ.ВидУчетаДТ = ?(РБП.СтатьяЗатрат.ВидРасходовНУ = Перечисления.ВидыРасходовНУ.НеУчитываемыеВЦеляхНалогообложения, Перечисления.ВидыУчетаПоПБУ18.ПР, ВидУчета);
					}
					//НоваяСтрока = ТабЗатрат.Добавить();
					//ЗаполнитьЗначенияСвойств(НоваяСтрока, РБП);
					//НоваяСтрока.СчетЗатрат = РБП.СчетБУ;
					//НоваяСтрока.СчетЗатратНУ = СчетНУ;
					if(true/*ВидУчета = Перечисления.ВидыУчетаПоПБУ18.НУ*/)
					{
						//НоваяСтрока.СуммаБух     = СуммаСписания;
						//НоваяСтрока.СуммаНал     = СуммаСписания;
					}
					//СтрокаЗаписьРасчетаРБП = ЗаписьРасчетаРБП.Добавить();
					//СтрокаЗаписьРасчетаРБП.ДатаНачала = РБП.ДатаНачалаСписания;
					//СтрокаЗаписьРасчетаРБП.ДатаОкончания = РБП.ДатаОкончанияСписания;
					//СтрокаЗаписьРасчетаРБП.КоличествоМесяцевДней = ВспомогательныеДанныеРасчета.КоличествоМесяцевДней;
					//СтрокаЗаписьРасчетаРБП.КоличествоМесяцевДнейТекущегоПериода = ВспомогательныеДанныеРасчета.КоличествоМесяцевДнейТекущегоПериода;
					//СтрокаЗаписьРасчетаРБП.СпособПризнанияРасходов = РБП.СпособПризнанияРасходов;
					//СтрокаЗаписьРасчетаРБП.СчетУчета = Счет;
					//СтрокаЗаписьРасчетаРБП.СчетСписания = СчетНУ;
					//СтрокаЗаписьРасчетаРБП.Сумма = СуммаСписания;
					//СтрокаЗаписьРасчетаРБП.Статья = РБП;
					//СтрокаЗаписьРасчетаРБП.СуммаДоговора = РБП.Сумма;
					//СтрокаЗаписьРасчетаРБП.НачОстаток = Выборка.Остаток;
					//СтрокаЗаписьРасчетаРБП.КонОстаток = Выборка.Остаток - СуммаСписания;
					//СтрокаЗаписьРасчетаРБП.ВидУчета = ВидУчета;
				}
				/*;
		
		
		мПроводки.записать(Ложь);*/
			}
			if(true/*ТабЗатрат.Количество() > 0*/)
			{
				//ВремСтруктураШапкиДокумента = Новый Структура;
				//ВремСтруктураШапкиДокумента.Вставить("Ссылка", СтруктураШапкиДокумента.Ссылка);
				//ВремСтруктураШапкиДокумента.Вставить("Дата", СтруктураШапкиДокумента.Дата);
				//ВремСтруктураШапкиДокумента.Вставить("Организация", СтруктураШапкиДокумента.Организация);
				if(true/*ВидУчета = "БУ"*/)
				{
					//ВремСтруктураШапкиДокумента.Вставить("ОтражатьВБухгалтерскомУчете", Истина);
					if(true/*СтруктураШапкиДокумента.Свойство("ОтражатьВНалоговомУчете")*/)
					{
						//ВремСтруктураШапкиДокумента.Вставить("ОтражатьВНалоговомУчете", СтруктураШапкиДокумента.ОтражатьВНалоговомУчете);
					}
					//ВремСтруктураШапкиДокумента.Вставить("ПоддержкаПБУ18", Ложь);
					/*// отключим формирование временных разниц
*/
				}
				/*УправлениеЗатратами.ДвиженияПоПрочимЗатратам(
			ВремСтруктураШапкиДокумента,
			ТабЗатрат
		);*/
			}
			/*БухгалтерскийУчет.ЗаписьВВспомогательныеРегистрыСведений(СтруктураШапкиДокумента,
	ЗаписьРасчетаРБП,
	РегистрыСведений.РасчетСписанияРБП,
	"Организация,ПериодРасчета,Активность,Регистратор,Статья,СчетУчета,СчетСписания,СпособПризнанияРасходов,ДатаНачала,ДатаОкончания,ВидУчета,КоличествоМесяцевДнейТекущегоПериода,КоличествоМесяцевДней,СуммаДоговора",
	"Сумма,НачОстаток,КонОстаток");*/
		}

		public object УстановитьРБП(/*Выборка*/)
		{
			if(true/*ТипЗнч(Выборка.Субконто1)=Тип("СправочникСсылка.РасходыБудущихПериодов")*/)
			{
			}
			return null;
		}
		//////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С ИНТЕРФЕЙСОМ ПОЛЬЗОВАТЕЛЯ (ОТСУТСТВУЮТ НА СЕРВЕРЕ И ВО ВНЕШНЕМ СОЕДИНЕНИИ)
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ВЫЗЫВАЕМЫЕ ИЗ ПУНКТОВ МЕНЮ
		// Функция проверяет возможность использования счета в проводках.
		//
		// Параметры:
		//  Счет     - Проверяемый счет.
		//  Сообщать - признак вывода сообщений.
		//
		// Возвращаемое значение:
		//  Булево - возможность использования счета в проводках
		//
		//

		public object СчетМожноИспользоватьВПроводках(/*Счет, Сообщать = Истина*/)
		{
			if(true/*ТипЗнч(Счет) <> Тип("ПланСчетовСсылка.Хозрасчетный")
	   И ТипЗнч(Счет) <> Тип("ПланСчетовСсылка.Налоговый")*/)
			{
				/*// Неправильный тип
*/
			}
			if(true/*Счет = ПланыСчетов.Хозрасчетный.ПустаяСсылка()*/)
			{
				/*// Пустая ссылка может использоваться
*/
			}
			if(true/*Счет.ЗапретитьИспользоватьВПроводках*/)
			{
				if(true/*Сообщать*/)
				{
					//Предупреждение("Счет " + СокрЛП(Счет)+" """ + Счет.Наименование + """ нельзя использовать в проводках.");
				}
				/*// Счет использовать в проводках нельзя
*/
			}
			/*// Счет можно использовать в проводках 
*/
			return null;
		}
		// СчетМожноИспользоватьВПроводках()
		// Обработка выбора первого субконто и открытие справочника владельца Организации
		// него, если он существует.
		//

		public void ОбработатьВыборПервогоСубконто(/*Элемент, СтандартнаяОбработка, Организация*/)
		{
			if(true/*ТипЗнч(Элемент.Значение) = Тип("СправочникСсылка.БанковскиеСчета")*/)
			{
				//СтандартнаяОбработка = Ложь;
				//ФормаВыбора          = Справочники.БанковскиеСчета.ПолучитьФормуВыбора(,Элемент,);
			}
			if(true/*Не СтандартнаяОбработка*/)
			{
				//ФормаВыбора.ПараметрОтборПоВладельцу = Организация;
				//ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Владелец.Доступность = Ложь;
				//ФормаВыбора.Открыть();
			}
		}
		// Обработка изменения первого субконто в документах.
		//
		// Параметры:
		//  Элемент  - измененный элемент управления.
		//  ДокОбъект - документ, в котором произошло изменение.
		//  СписокСубконто - список имен реквизитов субконто, связанных с измененным значением.
		//

		public void ОбработатьИзменениеСубконто(/*Элемент, ДокОбъект, СписокСубконто*/)
		{
			if(true/*ТипЗнч(Элемент.Значение) = Тип("СправочникСсылка.Контрагенты")*/)
			{
			}
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ОБЕСПЕЧЕНИЯ РАБОТЫ ФОРМ ДОКУМЕНТОВ

		public void ОткрытьЖурналПроводок(/*Ссылка, Регистр = "БУ"*/)
		{
			if(true/*Регистр = "БУ"*/)
			{
				//ФормаСписка = РегистрыБухгалтерии.Хозрасчетный.ПолучитьФормуСписка();
				if(true/*ФормаСписка.РегистрБухгалтерииСписок.Отбор.Регистратор.ТипЗначения.СодержитТип(ТипЗнч(Ссылка))*/)
				{
					/*// Сбрасываем предыдущие отборы
*/
					//ФормаСписка.РегистрБухгалтерииСписок.Отбор.Сбросить();
					//ФормаСписка.РегистрБухгалтерииСписок.Отбор.Регистратор.ВидСравнения  = ВидСравнения.Равно;
					//ФормаСписка.РегистрБухгалтерииСписок.Отбор.Регистратор.Значение      = Ссылка;
					//ФормаСписка.РегистрБухгалтерииСписок.Отбор.Регистратор.Использование = Истина;
					//ФормаСписка.ЭлементыФормы.Список.НастройкаОтбора["Регистратор"].Доступность = Ложь;
					//ФормаСписка.Открыть();
				}
			}
		}
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ УНИВЕРСАЛИЗАЦИИ ПРОМЖУТОЧНЫХ ДАННЫХ
		// Процедура отрабатывает установку отбора по владельцу-организации
		// для первого субконто.
		//
		//  Также процедура устанавливает отборы в формах выбора партий номенклатуры,
		// документов расчетов с контрагентами и партий материалов в эксплуатации.
		//
		// Параметры:
		//  Элемент      - элемент управления, для которого устанавливается отбор
		//  СтандартнаяОбработка - Булево, признак стандартной обработки выбора
		//                 в элементе формы
		//  СписокПараметров -СписокЗначений, в котором передаются параметры
		//                 отбора для форм выбора партий, документов расчетов
		//                 с контрагентами
		//  ОграничениеТипаЭлемента - ОписаниеТипов, содержащее список допустимых
		//                 типов элемента управления
		//

		public void ОбработатьВыборСубконто(/*Элемент, СтандартнаяОбработка, Организация, СписокПараметров = Неопределено, ОграничениеТипаЭлемента = Неопределено*/)
		{
			if(true/*не ТипЗнч(ОграничениеТипаЭлемента) = Тип("ОписаниеТипов")*/)
			{
				//ТипЭлемента = ТипЗнч(Элемент.Значение);
				if(true/*ТипЭлемента =Неопределено*/)
				{
				}
				//ОграничениеТипаЭлемента = Элемент.ОграничениеТипа;
			}
			if(true/*ТипЭлемента = Тип("СправочникСсылка.БанковскиеСчета")*/)
			{
				//СтандартнаяОбработка = Ложь;
				//ФормаВыбора          = Справочники.БанковскиеСчета.ПолучитьФормуВыбора(,Элемент,);
				//ФормаВыбора.ПараметрОтборПоВладельцу = Организация;
				//ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Владелец.Доступность = Ложь;
			}
			if(true/*Не СтандартнаяОбработка*/)
			{
				//ФормаВыбора.Открыть();
			}
		}
		// ОбработатьВыборСубконто()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ СО СЧЕТАМИ И СУБКОНТО
		// Выполняет в табличном поле приведение значений субконто к типу, соответствующему счету
		// сведения о счете передаются через параметр СведенияОСчете
		// используется для табличных полей, содержащих колонки типа Счет и соответствующие ему субконто
		//
		// Параметры:
		//	ТабличноеПоле 	- табличное поле
		//  ДтКт 			- строка "Дт", "Кт" или "" - часть имени колонки табличного поля
		// 					для колонок табличного поля поддерживаются имена
		//					типа СубконтоДт1, СубконтоКт1, Субконто1...
		//  СведенияОСчете 	- структура
		//					  КоличествоСубконто - число
		//                    ТипСубконто1 - описание типа
		//                    ТипСубконто2 - описание типа
		//                    ТипСубконто3 - описание типа
		//					  ВидСубконто1Представление - представление вида субконто - в данной процедуре не используется
		//					  ВидСубконто2Представление - представление вида субконто - в данной процедуре не используется
		//					  ВидСубконто3Представление - представление вида субконто - в данной процедуре не используется
		//

		public void ПривестиЗначениеСубконто(/*ТабличноеПоле, ДтКт, СведенияОСчете*/)
		{
		}
		// ПривестиЗначениеСубконто
		// Назначает видимость ячейкам строки табличного поля, соответствующим субконто
		// в зависимлсти от счета. Сведения о счете передаются через параметр СведенияОСчете
		// Используется для табличных полей, содержащих колонки типа Счет и соответствующие ему субконто
		// при выводе строки
		//
		// Параметры:
		//	ОформлениеСтроки 	- оформление строки
		//  ДтКт 				- строка "Дт", "Кт" или "" - часть имени колонки табличного поля
		// 						для колонок табличного поля поддерживаются имена
		//						типа СубконтоДт1, СубконтоКт1, Субконто1...
		//  СведенияОСчете 		- структура
		//					  	КоличествоСубконто - число
		//                    	ТипСубконто1 - описание типа
		//                    	ТипСубконто2 - описание типа
		//                    	ТипСубконто3 - описание типа
		//					    ВидСубконто1Представление - представление вида субконто - в данной процедуре не используется
		//					    ВидСубконто2Представление - представление вида субконто - в данной процедуре не используется
		//					    ВидСубконто3Представление - представление вида субконто - в данной процедуре не используется
		//

		public void НазначитьВидимостьСубконто(/*ОформлениеСтроки, ДтКт, СведенияОСчете, СведенияОСтатьеЗатрат = Неопределено*/)
		{
			if(true/*СведенияОСтатьеЗатрат <> Неопределено И ОформлениеСтроки.Ячейки.Найти("СпособРаспределенияЗатрат") <> Неопределено*/)
			{
				//ОформлениеСтроки.Ячейки.СпособРаспределенияЗатрат.Видимость = СведенияОСтатьеЗатрат.ХарактерЗатрат = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы;
			}
		}
		// Функция формирует список счетов (список значений), включая субсчета, входящие в иерархию.
		//
		// Параметры
		//  ПланСчетов      - имя плана счетов
		//  СчетаСтрокой    - строка, содержащая список кодов счетов, разделенных запятыми
		//  ИсключитьГруппы - булево, исключать из массива счетов счета-группы или нет
		//	СообщатьОбОтсутствииСчета - булево, выдавать ли сообщение, если счет с таким кодом не найден
		//
		// Возвращаемое значение
		//  Список значений, содержащий счета выбранного плана счетов
		//

		public object ПолучитьМассивСчетов(/*ИмяПланаСчетов, Знач СчетаСтрокой = "", ИсключитьГруппы = Ложь, СообщатьОбОтсутствииСчета = Истина*/)
		{
			//МассивСчетов = Новый Массив;
			/*// Преобразуем переданную строку в массив ссылок на план счетов
*/
			//СчетаСтрокой = СтрЗаменить(СчетаСтрокой, " ", "");
			while(true/*Не ПустаяСтрока(СчетаСтрокой)*/)
			{
				/*// Определим код очередного счета
*/
				//Поз = Найти(СчетаСтрокой, ",");
				if(true/*Поз = 0*/)
				{
					//Код = СчетаСтрокой;
					//СчетаСтрокой = "";
				}
				/*// Определим ссылку на счет по коду
*/
				//Счет = ПланыСчетов[ИмяПланаСчетов].НайтиПоКоду(Код);
				if(true/*НЕ ЗначениеЗаполнено(Счет)*/)
				{
					if(true/*СообщатьОбОтсутствииСчета*/)
					{
						//ОбщегоНазначения.СообщитьОбОшибке("Не найден счет с кодом """ + Код + """ (план счетов - " + ИмяПланаСчетов + ")");
					}
				}
				//МассивСчетов.Добавить(Счет);
			}
			/*// Подготовим текст запроса
*/
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ПланСчетов.Ссылка КАК Счет
	|ИЗ
	|	ПланСчетов.%ПланСчетов% КАК ПланСчетов
	|ГДЕ
	|	ПланСчетов.Ссылка В ИЕРАРХИИ (&МассивСчетов) И %ВключатьГруппы%
	|";*/
			if(true/*ИсключитьГруппы*/)
			{
				/*ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ВключатьГруппы%", 
		"ПланСчетов.Ссылка НЕ В (
		| 	ВЫБРАТЬ
		|		ПланСчетов.Родитель
		|	ИЗ
		|		ПланСчетов.%ПланСчетов% КАК ПланСчетов
		|	ГДЕ
		|		ПланСчетов.Ссылка В ИЕРАРХИИ (&МассивСчетов)
		|)");*/
			}
			//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПланСчетов%", ИмяПланаСчетов);
			//Запрос = Новый Запрос(ТекстЗапроса);
			//Запрос.УстановитьПараметр("МассивСчетов", МассивСчетов);
			//СписокСчетов = Новый СписокЗначений;
			//СписокСчетов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Счет"));
			return null;
		}
		//ПолучитьМассивСчетов()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ПЕЧАТИ ОТЧЕТОВ ПО РЕГЛАМЕНТНЫМ ОПЕРАЦИЯМ

		public void ЗаписьВВспомогательныеРегистрыСведений(/*СтруктураШапкиДокумента, ТаблицаДвижений, ВспомогательныйРегистр, СтрокаГруппировки,СтрокаСуммирования*/)
		{
			if(true/*ТаблицаДвижений.Количество() = 0*/)
			{
			}
			//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
			//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Дата, "ПериодРасчета");
			//ТаблицаДвижений.ЗаполнитьЗначения(Истина, "Активность");
			//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Ссылка, "Регистратор");
			//ТаблицаДвижений.Свернуть(СтрокаГруппировки,СтрокаСуммирования);
			//ВспомогательныйРасчет = ВспомогательныйРегистр.СоздатьНаборЗаписей();
			//ВспомогательныйРасчет.Отбор.Регистратор.Установить(СтруктураШапкиДокумента.Ссылка);
			//ВспомогательныйРасчет.Прочитать();
			//ВспомогательныйРасчет.Загрузить(ТаблицаДвижений);
			//ВспомогательныйРасчет.Записать();
		}

		public void ПечатьСправкиРасчета(/*Объект, СтруктураШапкиДокумента, ВариантОтчета = 1*/)
		{
			//СправкаРасчет = Объект.Создать();
			//ФормаОбъекта = СправкаРасчет.ПолучитьФорму();
			//СправкаРасчет.ИспользоватьИнуюНастройку = Истина;
			//СправкаРасчет.Организация = СтруктураШапкиДокумента.Организация;
			//СправкаРасчет.ПериодРегистрации = КонецМесяца(СтруктураШапкиДокумента.Дата);
			//СправкаРасчет.ВариантОтчета = ВариантОтчета;
			//ФормаОбъекта.Открыть();
		}

		public object УпорядочитьСубконтоДляВыгрузкиНабораЗаписейРегистраБухгалтерии(/*ТЗНабораЗаписей*/)
		{
			return null;
		}

		public void УстановитьСубконтоПоВидуСубконто(/*Счет, Субконто, ВидСубконто, ЗначениеСубконто*/)
		{
			if(true/*Счет = Неопределено ИЛИ Счет.Пустая()*/)
			{
			}
			if(true/*Счет.ВидыСубконто.Найти(ВидСубконто) = Неопределено*/)
			{
			}
			if(true/*ВидСубконто.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто))*/)
			{
				//Субконто.Вставить(ВидСубконто, ЗначениеСубконто);
			}
		}
		// БухгалтерскийУчет.УстановитьСубконто()

		public void ДополнитьНаборЗаписейРегистраЗаписямиТаблицы(/*НаборЗаписей,ТаблицаДополнений*/)
		{
			//ОтрабатыватьСубконто = Метаданные.РегистрыБухгалтерии.Содержит(НаборЗаписей.Метаданные());
		}
		// Функция возвращает количество для записи в проводку
		// Если на счете не ведется количественный учет, то возвращается 0
		//
		// Параметры:
		// 		Счет - счет проводки
		//      Количество - количество для проводки
		//
		// Возврат:
		//		Количество для записи в проводку
		//

		public object КоличествоВПроводку(/*Счет, Количество*/)
		{
			if(true/*Не Счет.Пустая() 
	   И Счет.Количественный*/)
			{
			}
			return null;
		}
		// КоличествоВПроводку()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ СО СЧЕТАМИ И СУБКОНТО
		// Эта функция возвращает информацию о статье затарат как субконто счета по данным строки табличного поля
		// Если в соответствии не найдена информация о статье - она подготавливается и
		// помещается в соответсвие
		// Применяется для работы с формами в которых активно требуется получать
		// информащцию о статьях, например, при выводе строки табличного поля
		//
		// Параметры:
		//	СведенияОСтатьяхЗатрат - соответсвие у котрого в качестве ключа - СправочникСсылка, а
		//  				  	в качестве значения - структура из одного элемента
		//						ХарактерЗатрат типа ПеречислениеСсылка.ХарактерЗатрат
		//
		//	ДанныеСтроки - данные строки
		//
		// Возвращаемое значение:
		//  Описанная выше структура
		//

		public object ПолучитьСведенияОСтатьеЗатратПоСтроке(/*СведенияОСтатьяхЗатрат, ДтКт, ДанныеСтроки*/)
		{
			//ТипСтатьяЗатратСсылка = Тип("СправочникСсылка.СтатьиЗатрат");
			return null;
		}
		// локальня функция для использования в ПолучитьСведенияОСтатьеЗатратПоСтроке

		public object ПолучитьСведенияОСтатьеЗатрат(/*СведенияОСтатьяхЗатрат, СтатьяЗатрат*/)
		{
			//СведенияОСтатьеЗатрат = СведенияОСтатьяхЗатрат[СтатьяЗатрат];
			if(true/*СведенияОСтатьеЗатрат = Неопределено*/)
			{
				//СведенияОСтатьеЗатрат = Новый Структура("ХарактерЗатрат");
				//СведенияОСтатьеЗатрат.ХарактерЗатрат = СтатьяЗатрат.ХарактерЗатрат;
				//СведенияОСтатьяхЗатрат[СтатьяЗатрат] = СведенияОСтатьеЗатрат;
			}
			return null;
		}
		// Процедура устанавливает субконто на счете. Если такое субконто не счете
		// отсутствует, то ничего не делается.
		//
		// Параметры:
		//		Счет - Счет, к которому относится субконто
		//      Субконто - вид субконто
		//		Номер или имя установливаемого субконто
		//      Значение субконто - значение устанавливаемого субконто
		//

		public void ЗаполнитьСубконто(/*Проводка, СтрокаДокумента, СубконтоДт1 = Неопределено, СубконтоДт2 = Неопределено, СубконтоДт3 = Неопределено, СубконтоКт1 = Неопределено, СубконтоКт2 = Неопределено, СубконтоКт3 = Неопределено*/)
		{
			//СтруктураПараметров = новый Структура("КэшПоВидамСубконто",новый Соответствие());
			/*// Заполняем дебет:
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетДт)*/)
			{
			}
			/*// Заполняем кредит
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетКт)*/)
			{
			}
		}
		// ЗаполнитьСубконто()
		//Процедура предназначена для сворачивания набора записей регистра бухгалтерии "Хозрасчетный":
		//1) Формирует исходные данные для сворачивания:
		//  	список колонок для группировки и для суммирования
		//2) Вызывает универсальную процедуру сворачивания набора записей
		//Параметры: НаборЗаписейРегистраБухгалтерии, тип - набор записей регистров бухгалтерии Хозрасчетный

		public void СвернутьНаборЗаписейРегистраБухгалтерии(/*НаборЗаписейРегистраБухгалтерии*/)
		{
			/*//колонки таблицы значений, которые будут суммироваться
*/
			//СтрокаСуммирование = "Сумма, КоличествоДт, КоличествоКт, ВалютнаяСуммаДт, ВалютнаяСуммаКт";
			/*//колонки таблицы значений, по которым будет выполняться группировка
*/
			/*СтрокаГруппировка = "Период, Регистратор, Активность, Организация, "+
		"СчетДт, СчетКт, ВидРегламентнойОперации, МоментВремени, "+
		"Содержание, НомерЖурнала, СписаниеПартий, ДатаЗаписи, "+
		"ВидСубконтоДт1, ВидСубконтоДт2, ВидСубконтоДт3, "+
		"СубконтоДт1, СубконтоДт2, СубконтоДт3, "+
		"ВидСубконтоКт1, ВидСубконтоКт2, ВидСубконтоКт3, "+
		"СубконтоКт1, СубконтоКт2, СубконтоКт3,"+
		"ВалютаДт, ВалютаКт, НДСПродукции";*/
			//ВестиРеглУчетРасчетовСПерсоналомСводно = глЗначениеПеременной("ВестиРеглУчетРасчетовСПерсоналомСводно");
			//МассивСчетовРасчетовСПерсоналом = Новый Массив;
			/*// Если способ ведения расчетов с персоналом - сводно,
*/
			/*// то перед сворачиванием могут потребоваться дополнительные действия по очистке аналитики в проводках
*/
			if(true/*ВестиРеглУчетРасчетовСПерсоналомСводно*/)
			{
				/*// Подготовка массива счетов учета расчетов с персоналом
*/
				//МассивСчетовРасчетовСПерсоналом.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда);
				//МассивСчетовРасчетовСПерсоналом.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоДепонированнымСуммам);
				//МассивСчетовРасчетовСПерсоналом.Добавить(ПланыСчетов.Хозрасчетный.РасходыНаОплатуТрудаБудущихПериодов);
			}
			/*ОбщегоНазначения.СвернутьНаборЗаписейРегистраБухгалтерии(НаборЗаписейРегистраБухгалтерии,
								СтрокаГруппировка, СтрокаСуммирование,
								ВестиРеглУчетРасчетовСПерсоналомСводно, МассивСчетовРасчетовСПерсоналом);*/
		}
	}
}
